//类
class Person {
  name:string
  age:number
  constructor(name:string,age:number) {
    this.name = name;
    this.age = age;
  }
  sayName():void{
    console.log(this);
  }
}
class Son extends Person {
  sex:string='男'
  myMethod(str:string):void{
    console.log(this);
  }
}
let p = new Son('三笠',17);
p.sayName();
p.myMethod('艾伦');


//类的修饰符
class MyPerson{
  public name='三笠';
  private age=19;//私有属性,只能在当前类的范围访问
  protected bodyWeight = 130;//protected修饰符与 private修饰符的行为很相似，但有一点不同， protected成员在派生类中仍然可以访问。
  readonly sex = true;
  myset(){
    console.log(this.age);
  }
}

class MySon extends MyPerson {
  love():void{
    console.log("我的"+this.name);
    console.log(this.bodyWeight);//访问里面的protected属性
  }
}

//实例化
const s = new MySon();
s.love();
s.myset();
// s.sex = 20 // 报错
console.log(s.sex);//只能读取，不能设置



class Giant {
  
}

let g = new Giant();